iT邦幫忙

2021 iThome 鐵人賽

DAY 20
0
自我挑戰組

ProtoPie 摸一摸系列 第 20

連續 30 天 玩玩看 ProtoPie - Day 20

  • 分享至 

  • xImage
  •  

突然注意到信件夾出現ProtoPie 寄來的信,分享更多不同的教學。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941OknNNOVIQv.png

很好奇他們是怎麼找到這些人,並且用什麼樣的方式合作。

這次是最早我看的影片教學任職於微軟做使用者經驗設計的 Abhas Sinha 。

看來都是有個人正職,又同時幫 ProtoPie 寫教學,是不是社群很強大?

問題些放下,以後可能就會得到答案。

今天要來跟看看信件分享的文字教學。

使用 Chain 和 3D Rotate 來模擬滾輪選擇器

其實這次在寫鐵人賽才意識到,長期只看英文的缺點就是,其實很多東西的描述我其實不知道中文怎麼講。

這有時候會在溝通的時候造成詞不達意,以前就有發現跟某一任老闆溝通,如果講英文的部分他會直接忘掉。

後來就發現跟他互動要把所有的內容都轉成中文(即便有時候用英文可以減少一些溝通誤會)。

總之,滾輪選擇器,就是用手指上下滑動可以做選擇的一種選單。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941zO6V2HOPyV.png

自從有越來越小的觸控螢幕,從智能手機到智能手錶,都很容易看到這一種選單或其他變化型。

(例如不只有上下滾動,甚至可以多方向。)

講者舉的例子,常見有生日選擇器、或是只有少量選項的時候會用到。
(大概是因為如果選項非常多,而且又沒有一定的順序,用這種選則器會不知道自己滑到哪裡...)

這次我們使用 3D Rotate 和 Chain 要來製作滾輪選擇器,讓人在滑動的時候有物理上的滾輪視覺深淺變化。

我們大概會做到幾個東西:

  1. 用學過的 Paging Container 來做出不同 View
  2. 使用 Variable 來獲得滾動的值
  3. 利用 Chain 和 3D Rotate 來做出有深淺的滾輪感
  4. 設定滾輪的初始值

先來這裡把檔案下載下來。
https://cloud.protopie.io/p/00f465c2f4?_ga=2.142169140.763655596.1633359071-1488944963.1628737660&_gac=1.154953290.1632841668.CjwKCAjw-sqKBhBjEiwAVaQ9a0PVXOhXntCZr8gXViELEy-aazh6pS-JruGXL8qfRph_6WXPrZmrfBoCymMQAvD_BwE

https://ithelp.ithome.com.tw/upload/images/20211005/20141941muM9xbdNKS.png

然後在ProtoPie Studio 打開。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941O3SkGZSyq1.png

用學過的 Paging Container 來做出不同 View

我們先製作一個 Paging Container,左上角選一下。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941zdmR9bKsNo.png

右手邊 Size 設定為 327 x 216 ,剛好可以蓋住中間的白色盒子。

https://ithelp.ithome.com.tw/upload/images/20211005/2014194129zDzd5kDt.png

順便把名稱改為 Paging ,好的命名很重要!!!

https://ithelp.ithome.com.tw/upload/images/20211005/20141941KITvMAzkap.png

接下來選擇所有的月份。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941NM9IERnrV0.png

拉到 Paging 裡面。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941D3pRDLppPM.png

講者這邊很貼心解釋為什麼前面 Paging Container 設定高度為 216 。

如果單獨看一個月份的高度是72 px。(例如這是 June)

https://ithelp.ithome.com.tw/upload/images/20211005/20141941dozIdY2s88.png

一次如果要看三個月份的話,72 * 3 就是 216 。

而 Paging Container 的範圍是使用這可以觸摸得到的。

接下來選 Paging 這個 Layer ,改一下右手邊 Page by 成 Custom 設定為 72 。
這樣每一頁就會用 72 px 為單位改變。

Scroll也改成 72,這可能要看你想要什麼樣的感覺。
如果想要從第一個開始,最上面空白,那也可以設定成為 0。
設定成 72 會讓最上面有一格月份 June,中間從 July 選起。

https://ithelp.ithome.com.tw/upload/images/20211005/201419419LWbEeYnxD.png

也因為上面的原因,我們要讓最後一個月份 December 最下面加一個 72 px 的高度,所以選到最後面 December 才會在中間。

我們用 Rectangle 做一個方塊,大小跟前面月份一樣 217 x 72 ,然後把透明度 Opacity 改成 0 ,這純粹只是幫忙置中用。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941Y0ChVNa7ae.png

https://ithelp.ithome.com.tw/upload/images/20211005/20141941mur5TtLkWM.png

然後我們是不是很多月份都顯示在框框外面?

選一下 Paging Container ,右邊的設定 Clip Sublayers 勾一下。

沒勾選的樣子
https://ithelp.ithome.com.tw/upload/images/20211005/20141941R0NDpJwGIz.png

有勾選的樣子
https://ithelp.ithome.com.tw/upload/images/20211005/20141941vcjGcRRLAY.png

使用 Variable 來獲得滾動的值

接下來我們需要一個變數 Variable 來追蹤使用者滾到哪去了。

左手邊最下方有個 Variable ,點開來可以新增一個。

記得要選為 For This Scene ,因為之後會使用 Formula 指定給這個 Variable 。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941Xfd5v3fJR4.png

命名為 Scroll 。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941MGm8SM2F9J.png

右手邊勾選 Use Formula 。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941JMp4N32M5M.png

Formula 裡面輸入 'Paging'.scrollOffset 。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941ArPIU7C2Bf.png

這個意思就是 Paging 這個 Container ,用 scrollOffset 回傳目前的 scroll value 。

游標移動到 Variable 上方的時候,就會出現一個小蟲,就是 Debug 模式,點一下。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941LuAYvY8GxJ.png

這樣畫面上就能看到這個回傳值是什麼了。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941WMOtQbWcnQ.png

利用 Chain 和 3D Rotate 來做出有深淺的滾輪感

選一下 Paging 這個 Container 然後加一個 Chain Trigger ,值設定為 Scroll 。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941U7M2ddWM5s.png

加一個 3D Rotate 的 Response ,指定 June 這個 Layer 。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941XmOVRFWIVv.png

3D Rotate 做以下設定,來讓 Paging 從 0 到 72 pixel (一個月份的高度)就會向上旋轉 35 度。
(想像一下滾輪的上方)

https://ithelp.ithome.com.tw/upload/images/20211005/20141941MdEbOyVQrU.png

接下來比較繁瑣,那就是每個月都要各別處理。

July 會需要兩個 Range ,因為有向上轉根向下轉兩種情形。

所以加一個 3D Rotate 指定 July 這個 Layer ,並做以下設定。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941pFoSZvJsuw.png

兩個都設定向上旋轉,直接控制角度的正負數比較不會亂掉。

然後每個月份就是這樣一直加72,就會得到一個漂亮的階梯圖...

https://ithelp.ithome.com.tw/upload/images/20211005/201419419kwP4Jhonq.png

(明明就有完成的 Pie 檔案可以直接下載...如果你們不想這樣花時間,歡迎去下方下載。但自己做過比較有感覺啦。)

https://cloud.protopie.io/p/780f41920c?_ga=2.116936960.763655596.1633359071-1488944963.1628737660&_gac=1.190058073.1632841668.CjwKCAjw-sqKBhBjEiwAVaQ9a0PVXOhXntCZr8gXViELEy-aazh6pS-JruGXL8qfRph_6WXPrZmrfBoCymMQAvD_BwE

如果你願意也可以好好命名一下就會長這樣。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941Y1TZ6B1c5e.png

其實做一下也滿快的,大概做到 August 就只是肌肉記憶了。

設定滾輪的初始值

我們用 Preview 看一下,好像都還算順利,能滑動也會在正確的地方停下來。

但,好像每一個轉換有點卡卡的?

例如 September 剛滑上來的時候還是平的,但到達位置之後瞬間變成滾輪的下緣。

September 是平的
https://ithelp.ithome.com.tw/upload/images/20211005/20141941KpXYQyOkr2.png

September 變成滾輪下緣
https://ithelp.ithome.com.tw/upload/images/20211005/20141941NE4kc8aHf4.png

怎麼辦呢?

我們只要再加一個 Trigger Start 。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941RZy0caM9J6.png

加上 3D Rotate。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941ZqhsPdayrE.png

設定 June Rotate to 35 ,一樣設定成向上旋轉。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941LC3Q88YcYc.png

但這邊最重要的一步就是...

Duration 設定為 0 。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941tECIki2ghS.png

這樣每一個轉換之間不會有延遲,一換到下一個月份就已經是在旋轉好的位置了。

July 不用設定,因為他是一開始打開滾輪就會看到在中間的月份。

之後的每一個月份,逐一增加一個 3D Rotate 的 Response 。

只不過因為是下緣,所以全部 Rotate to -35 。

Preview 看一下,哇,好像不錯...但?

https://ithelp.ithome.com.tw/upload/images/20211005/201419414dRLmMw5gb.png

剛剛發現我把 Overlay 這個 Layer 放到下方了。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941locSQKNhG9.png

所以我移動一下,就多了一個把上下方霧掉的視覺。

https://ithelp.ithome.com.tw/upload/images/20211005/201419413PZuBFSXGt.png

Preview 再看一下,好像可以了!

https://ithelp.ithome.com.tw/upload/images/20211005/20141941JKaiJOTXKM.png

最後,左上角那個紀錄 Scroll Value 的,記得要去左下角按一下小蟲,就能拿掉囉。

https://ithelp.ithome.com.tw/upload/images/20211005/20141941abcTD9ruBZ.png

今天有點驚險,不過還滿喜歡看文字的教學,我覺得比影片的容易理解,但也代表講者需要花更多時間慢慢的製作,而不是向影片一樣,邊做邊講就可以了。

各有好壞,但有件事情是真的。

照顧好自己的身體。

晚安。


上一篇
連續 30 天 玩玩看 ProtoPie - Day 19
下一篇
連續 30 天 玩玩看 ProtoPie - Day 21
系列文
ProtoPie 摸一摸30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言